The invention relates to a communication system comprising a control circuit, which control circuit
includes a message-based operating system, application software and means for exchanging application software, and
when application software is exchanged, causes an old software component to be replaced to carry out a state transfer and stop at a certain point to direct the available messages to a new software component.
Communication systems comprise computer systems or control circuits whose software is to be available for a long time and practically uninterruptedly. In the case of errors in the software, or also because of new requirements, certain software components are to be renewed. In that case the down time of the communication system is to be minimized.
A communication system which has practically no down time when a software component of a switching system is exchanged is known from U.S. Pat. No. 5,155,837. Before the exchange, first the contents and states of all the registers, processes and memory units are saved in a specific memory, while the old software is in operation (column 7, rows 30 to 36). The old version of the software is then loaded in a first partition. The new software is consecutively loaded in a second partition. Once the new software has been loaded and tested, the contents and states of all the registers, processes and memory units are transferred from the memory to the new software. This new software is then taken into operation. Then the new software, however, does not start to operate at the process point at which the old software was stopped, but at a defined program point. Besides, not individual software modules or software components are exchanged, but closed software is.
Furthermore, the document xe2x80x9cElektrisches Nachrichtenwesen, Vol. 64, no. 4, 1990, pages 327 to 333xe2x80x9d has disclosed an exchange of software components during the operation of, for example, a switching center. In the case of an exchange, the system then causes an old software component to carry out a necessary state transfer. When predefined synchronization points are reached, the old software component is stopped and messages are redirected from the old to the new software component. The new software component is started and the old software component is stopped and removed. Details about the structure of the program provided for the exchange cannot be learnt from the document.
Therefore, it is an object of the invention to provide a realizable exchange procedure of software components in which procedure the operation is not restricted except during a brief delay period.
The object is achieved by a communication system of the type defined in the opening paragraph, in that the application software includes at least a process with at least an application thread and an exchange thread, in that an old process to be exchanged is at least provided for gathering its states after the application threads of the old process have stopped at an exchange point, and in that the exchange thread of the old process is used at least for transferring the states to a new process through exchange ports.
The exchange procedure according to the invention relates to processes which include, for example, a plurality of threads (sequentially running program partitions) among which there is an exchange thread for controlling the exchange. Due to the invention, a new process is started at the respective program point (exchange point) at which the old process has been stopped. In addition, all the states of the old process are transferred to the new process via an exchange thread of the old process. However, this may only apply to such systems that comprise an operating system that makes it possible to exchange messages between software components (for example CHORUS). Messages are then exchanged between various processes via software interfaces which are referenced ports in the following. The states are then exchanged via exchange ports of the old and the new process.
A process is exchanged so that no other process is affected thereby. The messages arriving from another client (another process) are transmitted to the new process and further processed after the exchange. The exchange is effected in that there is only a brief delay during the processing. Practical investigations have shown that the delay lies in the range of a few milliseconds.
A communication system may be a computer system, a switching center, a computer network or also server systems such as, for example, a video-on-demand server. A computer system comprises at least a computer in which a software component is to be exchanged.
An application thread has a first partition for gathering at least the states of the application thread of an old process to be exchanged, and is used for delivering the gathered states to the exchange thread of the old process. An application thread of a new process has a second partition for taking over the states from the exchange thread of the old process and for reconstructing objects related to the states.
The exchange of a process is introduced by a replacement server. This server is included in the control circuit as a further software component and is used for loading and starting a process and for identifying whether a newly started process is to replace an old process. A maintenance device delivers a new process to the replacement server via a transmission medium.
When a plurality of processes are to be exchanged, they are exchanged consecutively. Thus first a first process is exchanged and then the following processes in succession. When a plurality of processes are to be exchanged, the control can be taken over by the replacement server.
Once a new process has been loaded and started, which process is used for exchanging an old process, first a jump is made to an exchange point that corresponds to the exchange point of the old process in that normal program routines are skipped.
The invention likewise relates to a computer system comprising at least a computer and a method of exchanging software components.
These and other aspects of the invention are apparent from and will be elucidated with reference to the embodiments described hereinafter.